﻿#region Código Gerado Pela Fábrica de Software (Using)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;
using itau.im.entidade;
using EnterpriseLibraryWrapper;
#endregion

#region Código Gerado Pela Fábrica de Software (Namespace)
namespace itau.im.negocio
{
    #region Código Gerado Pela Fábrica de Software (Interface)

    /// <summary>
    /// **************************************************************************************************<BR/>
    /// AUTOR           : Fábrica de Software                                                             <BR/>
    /// DATA DE CRIAÇÃO : 07/01/2011                                                                      <BR/>
    /// ALTERADO POR    :                                                                                 <BR/>
    /// DATA ALTERAÇÃO  :                                                                                 <BR/>
    /// OBJETIVO        : Interface "IRegraAtribuicaoBS" utilizada para exibir o servico.                 <BR/>
    /// **************************************************************************************************<BR/>
    /// </summary>
    [ServiceContract]
    public interface IRegraAtribuicaoBS
    {
        #region Código Gerado Pela Fábrica de Software (Métodos)

        [OperationContract]
        [FaultContract(typeof(WCFFaultContract))]
        IList<RegraAtribuicaoCurva> ObterRegrasAtribuicaoCurvaVigentesPorCodigoGrupo(int codigoGrupo);

        [OperationContract]
        [FaultContract(typeof(WCFFaultContract))]
        RegraAtribuicaoCurva ObterRegraVigente(int codigoCurva, int codigoGrupoParametros);
        
        [OperationContract]
        [FaultContract(typeof(WCFFaultContract))]
        IList<ParametroRegra> ObterParametrizacoesAtribuicaoPorCodigoRegraEDataVigenciaCompleto(int codigoRegraAtribuicao, DateTime dataInicioVigencia);

        [OperationContract]
        [FaultContract(typeof(WCFFaultContract))]
        void AtualizarRegrasAtribuicaoCurva(IList<RegraAtribuicaoCurva> listaRegrasAtribuicaoCurva);

        [OperationContract]
        [FaultContract(typeof(WCFFaultContract))]
        int ObterNumeroRegrasAtribuicaoCurvaVigentesPorCodigoGrupo(int codigoGrupo);

        [OperationContract]
        [FaultContract(typeof(WCFFaultContract))]
        int ObterNumeroRegrasAtribuicaoCurvaPorCodigoGrupo(int codigoGrupo);

        [OperationContract]
        [FaultContract(typeof(WCFFaultContract))]
        int ObterNumeroRegrasAtribuicaoPorCodigoParametro(int codigoParametro);

        [OperationContract]
        [FaultContract(typeof(WCFFaultContract))]
        IList<RegraAtribuicaoCurva> ObterRegrasAtribuicaoCurvaPorCodigoEVigencia(int codigoGrupo, VigenciaRegra vigenciaRegra);

        [OperationContract]
        [FaultContract(typeof(WCFFaultContract))]
        IList<RegraAtribuicaoCurva> ObterRegrasAtribuicaoCurvaPorDataReferencia(DateTime dataInicio, DateTime dataFim);

        [OperationContract]
        [FaultContract(typeof(WCFFaultContract))]
        void CriarRegrasAtribuicaoCurva(IList<RegraAtribuicaoCurva> listaRegrasAtribuicaoCurva);

        [OperationContract]
        [FaultContract(typeof(WCFFaultContract))]
        IList<RegraAtribuicaoCurva> ObterRegrasAtribuicaoCurvaPorCodigoGrupoData(int codigoGrupo, DateTime dataInicio, DateTime dataFim);

        #endregion

    }

    #endregion

}

#endregion